A number of advances in the fields of educational software and learning tools have been made in recent years. One of the more significant developments includes computer algebra systems (CAS) that can solve and graph advanced mathematical functions, including symbolic algebra, complex mathematical relationships, and calculus. These new software-based tools offer significant improvements over the software packages and devices available just 10 years ago. One of the more promising aspects of these newly developed tools is the benefit they can provide as a learning aid. For example, when students are learning new concepts in mathematics, and particularly in algebra and calculus, an illustration can be invaluable in enabling a better understanding of the underlying principles. However, a student learning a mathematical concept involving a function to be graphed may not have the requisite knowledge to select a graphing range for the function. Many devices such as graphing calculators require a student to first enter a range for an equation in order to graph the equation. Failure to provide the range or providing an incorrect range may cause a syntax error to be indicated. With such devices, a student without the experience necessary to correctly select an appropriate range for graphing mathematical functions may not be able to proceed with displaying a graph and therefore will not benefit from this useful learning aid. In other systems, a predefined range may be hard-coded into the system. However a fixed range has limited application for many functions and may preclude some functions from being displayed in a useful manner, since the scale that is used may not be particularly useful in visualizing the relationship between the variables.
Therefore, there is an interest in providing solutions to these and other problems related to graphing functions, particularly for applications relating to mathematical software and graphing calculators. It would be desirable to develop an approach that enables a wide variety of mathematical expressions and functions to be graphed without specifically requiring a user to first enter a graphing range and that is able to determine an appropriate range for a graph more effectively than can be done by simply using a default graph range.